import request from '@/utils/request'
// 统一请求体
const creatRequestView = () => {
  return {
    reqInMsgHeader: {
      ReqModles: 'xxx'// 请求模式-备用
    },
    main: { // 只用于user所以固定属性名称
      userName: '',
      userPwd: '',
      token: '',
      stateTimeout: ''
    }
  }
}

const defaultRequestView = creatRequestView()// 获得初始化的请求体对象
const updateDefaultRequestView = { // 创建更新默认请求实体对象方法
  update: (obj) => {
    Object.assign(defaultRequestView.main, obj) // 用法：assign(target,obj)
  }
}
// 用户登陆
export function login(data) {
  const { userName, userPwd } = data
  // 调用更新update方法进行设置请求值
  updateDefaultRequestView.update({ userName: userName, userPwd: userPwd })
  return request({
    url: '/user/checklogin',
    method: 'post',
    data: defaultRequestView
  })
}
// 用户注册
export function register(data) {
  const { userName, userPwd } = data
  // 调用更新update方法进行设置请求值
  updateDefaultRequestView.update({ userName: userName, userPwd: userPwd })
  return request({
    url: '/user/registerUser',
    method: 'post',
    data: defaultRequestView
  })
}
// 修改用户信息info
export function modifyUserinfo(obj) {
  updateDefaultRequestView.update({ userinfo: obj })
  return request({
    url: '/userinfo/modifyOne',
    method: 'post',
    data: defaultRequestView
  })
}
// 用户头像信息上传
export function uploadUserAvatarinfo(obj) {
  updateDefaultRequestView.update({ userinfo: obj })
  return request({
    url: '/userinfo/modifyOne',
    method: 'post',
    data: defaultRequestView
  })
}
// 获取用户信息info
export function getUserinfo(code) {
  updateDefaultRequestView.update({ userCode: code })
  return request({
    url: '/userinfo/getOne',
    method: 'post',
    data: defaultRequestView
  })
}
// 增添用户信息info
export function addUserinfo(obj) {
  updateDefaultRequestView.update({ userinfo: obj })
  return request({
    url: '/userinfo/addOne',
    method: 'post',
    data: defaultRequestView
  })
}
// 获取用户角色
export function getRolesInfobyUsername(name) {
  updateDefaultRequestView.update({ userName: name, userPwd: '..***' })
  return request({
    url: '/role/getrolebyusername',
    method: 'post',
    data: defaultRequestView
  })
}
// 获取用户个人信息
export function getPersonInfobyUsername(name) {
  updateDefaultRequestView.update({ userName: name, userPwd: '..***' })
  return request({
    url: '/user/getInfo',
    method: 'post',
    data: defaultRequestView
  })
}
// 用户登出
// 待完善 - 使用监听器监听页面关闭或者窗口关闭就执行logout方法
export function logout(Token) {
  updateDefaultRequestView.update({ token: Token })
  return request({
    url: '/user/logout',
    method: 'post',
    data: defaultRequestView
  })
}
// 获取用户信息操作记录
export function getOperaInfoList(usercode) {
  updateDefaultRequestView.update({ userCode: usercode })
  return request({
    url: '/useroperainfo/getList',
    method: 'post',
    data: defaultRequestView
  })
}
// 用户修改密码
export function modifyUserPassword(obj) {
  updateDefaultRequestView.update({ userName: obj.username, userPwd: obj.newPassword, originPassword: obj.originPassword })
  return request({
    url: '/user/modifyUser',
    method: 'post',
    data: defaultRequestView
  })
}
// 查询所有用户列表信息 - 简略
export function getAllUserList() {
  return request({
    url: '/user/getAllUserList',
    method: 'get'
  })
}
// 查询用户信息 - 分页
export function getAllUserDtoPage(queryparams) {
  updateDefaultRequestView.update(queryparams)
  return request({
    url: '/user/getAllUserPageFilter',
    method: 'post',
    data: defaultRequestView
  })
}
